#[test]
fn test_ownership() {
    let mut x = "str";
    let y = x;
    println!("{}", x);
}

#[test]
fn test_move() {}

#[test]
fn test_block() {
    let x = 0;
    // {
    //     let y = 1;
    //     x = &y;
    // }
    // assert_eq!(*x, 1);
}

static mut STATIC_MUT: &i32 = &128;

fn fn_lifetime<'arg>(ptr: &'arg str) {}

fn fn_unsafe(arg: &'static i32) {
    unsafe { STATIC_MUT = arg }
}

#[test]
fn test_unsafe_block() {
    fn_unsafe(&127)
}
